package com._5704.website.service;

import com._5704.website.entity.Activity;
import com._5704.website.form.ActivityForm;
import com._5704.website.vo.activityVO.ActivityVO;
import com._5704.website.vo.userVO.UserVO;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Yiyoung
 * @since 2021-07-25
 */
public interface IActivityService extends IService<Activity> {
    /**
     * 获得多个用户
     *
     * @param
     * @param page 页数
     * @param num 数量
     * @param isGetAll
     * @return 活动list
     */
    List<Activity> getActivities(int page, int num, int type, boolean isGetAll);

    /**
     * 根据id获得活动
     * @param id 活动id
     * @return
     */
    Activity getActivity(Integer id);

    /**
     * 是否展示
     * @param activity 活动
     * @param userId 用户id
     */
    boolean isShow(Activity activity,String userId);

    /**
     * 创建新的活动
     * @param activityForm 活动表单
     */
    void createActivity(ActivityForm activityForm, String userId);

    /**
     * 删除活动
     * @param id 活动id
     */
    void delete(Activity id);

    /**
     * 设置更新活动
     * @param activity 活动
     * @param activityForm 活动表单
     */
    void setModifyData(Activity activity, ActivityForm activityForm);

    /**
     * 更新活动
     * @param activity 活动
     */
    void updateActivity(Activity activity);

    /**
     * 获得数量
     * @return
     * @param type
     * @param isGetAll
     */
    int getNum(int type, boolean isGetAll);

    /**
     * 搜索
     * @param name 名字
     * @param page 页面
     * @param num  数量
     * @return
     */
    List<Activity> getActivityByName(String name, int page, int num);

    /**
     * 获得数量
     * @return
     */
    int getNum(String name);

    /**
     * 获得VO
     * @param activity 活动
     * @return
     */
    ActivityVO getActivityVO(Activity activity, UserVO userVO);

    /**
     * 更新图片
     * @param file 文件
     *
     * @return
     */
    String uploadPic(MultipartFile file);
}
